package uy.org.softtech.cssuite.web.modelo;

import static org.springframework.util.StringUtils.hasText;
import uy.org.softtech.cssuite.core.Modelo;
import uy.org.softtech.cssuite.entidad.finanzas.Cuenta;

public class ModeloCuenta extends Modelo {

	//NO EDITABLES
	private Long id;
	private String estado;
	private String creditos;
	private String debitos;
	private String balance;
	private String fechaCreacion;
	private String fechaActivacion;
	private String fechaDesactivacion;
	private String fechaCierre;
	private String fechaEstadoCuenta;
	
	//EDITABLES
	private String comentarios;
	
	public void inicializaModelo(Cuenta cuenta){
		if (getId() == null) {
			setId(cuenta.getId());
		}
		if(!hasText(getEstado())) {
			setEstado(cuenta.getEstado().toString());
		}
		if(!hasText(getCreditos())) {
			setCreditos(cuenta.convierteCreditos());
		}
		if(!hasText(getDebitos())) {
			setDebitos(cuenta.convierteDebitos());
		}
		if(!hasText(getBalance())) {
			setBalance(cuenta.convierteBalance());
		}
		if(!hasText(getFechaCreacion())) {
			setFechaCreacion(cuenta.convierteFechaCreacion());
		}
		if(!hasText(getFechaActivacion())) {
			setFechaActivacion(cuenta.convierteFechaActivacion());
		}
		if(!hasText(getFechaDesactivacion())) {
			setFechaDesactivacion(cuenta.convierteFechaDesactivacion());
		}
		if(!hasText(getFechaCierre())) {
			setFechaCierre(cuenta.convierteFechaCierre());
		}
		if(!hasText(getFechaEstadoCuenta())) {
			setFechaEstadoCuenta(cuenta.convierteFechaEstadoCuenta());
		}
		if(!hasText(getComentarios())) {
			setComentarios(cuenta.getComentarios());
		}
	}
	
	/*
	 *  GETTERS
	 */	
	public Long getId() {
		return id;
	}
	public String getEstado() {
		return estado;
	}
	public String getCreditos() {
		return creditos;
	}
	public String getDebitos() {
		return debitos;
	}
	public String getBalance() {
		return balance;
	}
	public String getFechaCreacion() {
		return fechaCreacion;
	}
	public String getFechaActivacion() {
		return fechaActivacion;
	}
	public String getFechaDesactivacion() {
		return fechaDesactivacion;
	}
	public String getFechaCierre() {
		return fechaCierre;
	}
	public String getFechaEstadoCuenta() {
		return fechaEstadoCuenta;
	}
	public String getComentarios() {
		return comentarios;
	}
	
	/*
	 *  SETTERS
	 */
	public void setId(Long id) {
		this.id = id;
	}
	public void setEstado(String estado) {
		this.estado = estado;
	}
	public void setCreditos(String creditos) {
		this.creditos = creditos;
	}
	public void setDebitos(String debitos) {
		this.debitos = debitos;
	}
	public void setBalance(String balance) {
		this.balance = balance;
	}
	public void setFechaCreacion(String fechaCreacion) {
		this.fechaCreacion = fechaCreacion;
	}
	public void setFechaActivacion(String fechaActivacion) {
		this.fechaActivacion = fechaActivacion;
	}
	public void setFechaDesactivacion(String fechaDesactivacion) {
		this.fechaDesactivacion = fechaDesactivacion;
	}
	public void setFechaCierre(String fechaCierre) {
		this.fechaCierre = fechaCierre;
	}
	public void setFechaEstadoCuenta(String fechaEstadoCuenta) {
		this.fechaEstadoCuenta = fechaEstadoCuenta;
	}
	public void setComentarios(String comentarios) {
		this.comentarios = comentarios;
	}
		
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("ModeloCuenta [");
		builder.append("accion=" + getAccion().toString() + ", ");
		builder.append("id=" + getId() + ", ");
		builder.append("estado=" + getEstado() + ", ");
		builder.append("creditos=" + getCreditos() + ", ");
		builder.append("debitos=" + getDebitos() + ", ");
		builder.append("balance=" + getBalance() + ", ");
		builder.append("fechaCreacion=" + getFechaCreacion() + ", ");
		builder.append("fechaActivacion=" + getFechaActivacion() + ", ");
		builder.append("fechaDesactivacion=" + getFechaDesactivacion() + ", ");
		builder.append("fechaCierre=" + getFechaCierre() + ", ");
		builder.append("fechaEstadoCuenta=" + getFechaEstadoCuenta() + ", ");
		builder.append("comentarios=" + getComentarios());
		builder.append("]");
		return builder.toString();
	}

}
